User device providing electronic publications with reading timer

ABSTRACT

A user device determines a rate of consumption value for each of a plurality of measurable units of an electronic publication. The user device calculates a running average of the rate of consumption values and provides a feature based on the running average.

BACKGROUND OF THE INVENTION

A large and growing population of users enjoys entertainment through theconsumption of media items, including electronic media, such aselectronic books (also referred to herein as ebooks), electronicnewspapers, electronic magazines, and other electronic reading material.Users employ various electronic devices to consume such publications.Among these electronic devices are electronic book readers, cellulartelephones, personal digital assistants (PDAs), portable media players,tablet computers, electronic pads, netbooks, desktop computers, notebookcomputers, and the like. Currently, most electronic devices do not offerthe feature of determining a rate of consumption of electronic media.Some additional features that may be added to electronic devices usedfor the consumption of electronic media is provided in the detaileddescription of this application.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments of the present invention, which, however, should not betaken to limit the present invention to the specific embodiments, butare for explanation and understanding only.

FIG. 1 is a block diagram of an exemplary network architecture, in whichembodiments of the present invention may operate.

FIG. 2 is a block diagram illustrating a consumption rate monitoringmodule, according to an embodiment.

FIG. 3 is a block diagram illustrating an exemplary user device,according to an embodiment.

FIG. 4 is a flow diagram illustrating a rate of consumption monitoringmethod, according to an embodiment.

FIG. 5 is a flow diagram illustrating a rate of consumption monitoringmethod, according to another embodiment.

FIG. 6 is a flow diagram illustrating a remaining reading timedetermination method, according to an embodiment.

FIG. 7 illustrates a front side of a user device having a display,according to an embodiment.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

The following description sets forth numerous specific details such asexamples of specific systems, components, methods, and so forth, inorder to provide a good understanding of several embodiments of thepresent invention. It will be apparent to one skilled in the art,however, that at least some embodiments of the present invention may bepracticed without these specific details. In other instances, well-knowncomponents or methods are not described in detail or are presented insimple block diagram format in order to avoid unnecessarily obscuringthe present invention. Thus, the specific details set forth are merelyexemplary. Particular implementations may vary from these exemplarydetails and still be contemplated to be within the scope of the presentinvention.

Embodiments of a method and apparatus are described for a user deviceproviding electronic publications that incorporates a reading timer. Inone embodiment, a consumption rate monitoring module of the user devicedetermines a rate of consumption value for each of a plurality ofmeasurable units of an electronic publication. The user devicecalculates a running average of the rate of consumption values andprovides a feature based on the running average. For example, thefeature may include an estimate of an amount of time remaining for theuser to complete consumption of the electronic publication.

FIG. 1 is a block diagram of an exemplary network architecture 100, inwhich embodiments of the present invention described herein may operate.The network architecture 100 may include a digital content providingsystem 120 and one or more user devices 104, 153, 155 capable ofcommunicating with the digital content providing system 120 via anetwork 106. Network 106 may include, for example, a public network suchas the Internet or a private network such as a local area network (LAN).

The user devices 104, 153, 155 may be portable computing devices such aselectronic book readers or tablet computers (e.g., that include a bookreader application). Other examples of portable computing devicesinclude cellular telephones, personal digital assistants (PDAs),portable media players, netbooks, and the like. The user devices 104,153, 155 may also be non-portable computing devices such as a desktopcomputer, a set-top box associated with a television, a gaming console,and so on. The user devices 104, 153, 155 are variously configured withdifferent features to enable consumption of one or more types of digitalcontent and electronic media items. The digital content and electronicmedia items may include electronic books (ebooks) such as electronictextbooks and/or other electronic publications (electronic versions ofpublications) such as electronic magazines, digital newspapers, digitalaudio books, electronic journals, real simple syndication (RSS) feeds,etc. The media items may also include digital video (e.g., movies,television, short clips, etc.), images (e.g., art, photographs, etc.),and multi-media content.

The digital content providing system 120 may correspond to any featureor combination of features for providing electronic media items or otherdigital content to the user devices 104, 153, 155. The digital contentproviding system 120 may include a network-accessible server-basedfunctionality (digital content providing server 125), various datastores (not shown), and/or other data processing equipment. The digitalcontent providing system 120 may be implemented by a single machine or acluster of machines. The digital content providing system 120 mayinclude one or more machines (e.g., one or more server computer systems,routers, gateways, etc.) that have processing and storage capabilitiesto provide the server-based functionality.

In one embodiment, the digital content providing server 125 correspondsto an entity which provides electronic publications (e.g., electronicbooks) to users upon the users' purchase of the items. In this role, thedigital content providing server 125 may essentially act as a bookselleror the like. In other cases, the digital content providing server 125corresponds to an entity which provides electronic publications to userson a non-fee basis or on the basis of some other type of alternativecompensation arrangement. Thus, the term a “provider” of items should beconstrued broadly to encompass educational institutions, governmentalorganizations, libraries, non-profit organizations, retailers, auctionservices, and so on, or some cooperative combination of any two or moreentities.

The digital content providing server 125 may deliver, and the userdevices 104, 153, 155 receive, electronic publications (or other mediaitems), search results, upgrades, and/or other information via thenetwork 106. For example, the user devices 104, 153, 155 may download orreceive ebooks from the digital content providing server 125. Thedigital content providing server 125 may also receive various requests(e.g., search queries), instructions and other data from the userdevices 104, 153, 155 via the network 106.

Communication between the user devices 104, 153, 155 and the itemproviding system 120 may be enabled via any communicationinfrastructure. One example of such an infrastructure includes acombination of a wide area network (WAN) and wireless infrastructure,which allows a user to use the user devices 104, 153, 155 to purchasedigital content (e.g., electronic publications) and consume the digitalcontent without being tethered to the digital content providing system120 via hardwired links. The wireless infrastructure may be provided byone or multiple wireless communications systems, such as wirelesscommunication system 110. In one embodiment, wireless communicationsystem 110 may be a wireless fidelity (WiFi) hotspot connected with thenetwork 106. Wireless communication system 110 may also be a wirelesscarrier system that can be implemented using various data processingequipment, communication towers, etc. Alternatively, or in addition, thewireless carrier system may rely on satellite technology to exchangeinformation with the user devices 104, 153, 155.

The communication infrastructure may also include acommunication-enabling system 115 that serves as an intermediary inpassing information between the digital content providing system 120 andthe wireless communication system 110. The communication-enabling system115 may communicate with the wireless communication system 110 (e.g., awireless carrier) via a dedicated channel, and may communicate with thedigital content providing system 120 via a non-dedicated communicationmechanism, (e.g., a public Wide Area Network (WAN) such as theInternet).

In addition to wirelessly connecting to wireless communication system110, user devices 104, 153, 155 may also wirelessly connect to otheruser devices 104, 153, 155. For example, user device 104 may form awireless ad hoc (peer-to-peer) network with user device 153 using WiFi,Bluetooth, or other wireless communication protocols.

In one embodiment, user device 104, 153, 155 each include a consumptionrate monitoring module 135. Consumption rate monitoring module 135 mayassist a user in determining and/or improving a rate of consumption ofdigital content, such as a reading speed of an ebook or other electronicmedia. Consumption rate monitoring module 135 tracks and analyzes auser's reading behavior, and provides selected features based on thereading behavior. For example, consumption rate monitoring module 135may determine a user's average reading speed and estimate an amount oftime it will take the user to finish reading the ebook. Consumption ratemonitoring module 135 may also exchange information with consumptionrate monitoring modules 135 in other user devices 104, 153, 155 to shareor accumulate information on the reading behavior of multiple users. Inaddition, consumption rate monitoring module 135 may provide features toassist a user in improving his or her reading speed. Consumption ratemonitoring module 135 is described in greater detail with reference toFIG. 2 below.

FIG. 2 is a block diagram of one embodiment of a consumption ratemonitoring module 135 that is included in a user device, which maycorrespond to consumption rate monitoring module 135 of FIG. 1. In oneembodiment, user device 104 includes consumption rate monitoring module135, which may include reading behavior tracking module 210, electronicmedia analyzing module 215, and reading behavior analyzing module 220.In other embodiments, consumption rate monitoring module 250 may alsoinclude reading behavior reporting module 225, reading behavior estimatemodule 230, and reading behavior sharing module 245. In one embodiment,consumption rate monitoring module 135 is connected to a data store 242,which may be a file system, database or other data management layerresident on a data storage device such as a disk drive, RAM, ROM,database, etc.

Reading behavior tracking module 210 tracks a user's reading behaviorwhile the user reads (or otherwise consumes) an active electronicpublication or other piece of electronic media (e.g., an ebook). Readingbehavior tracking module 210 may record the user's reading behavior data236 in data store 242. In one embodiment, the reading behavior mayinclude a user's rate of consumption of a piece of electronic media(i.e., the user's reading speed). The user device may include a timer248. The timer 248 may be a component of the consumption rate monitoringmodule 135, or may be external to the consumption rate monitoring module135, as shown. Reading behavior tracking module 210 can track the amountof time that a user spends consuming a particular portion of theelectronic media using the timer 248. For example, reading behaviortracking module 210 may start timer 248 when a portion (e.g., one page)of an electronic publication is initially displayed, and stop the timer248 when the user issues a change page command. In one embodiment, thetimer 248 may be delayed to account for the rendering or refresh time ofa display of the user device, or reading behavior tracking module mayotherwise account for any delay that may occur. Thus, reading behaviortracking module 210 can determine how much time the user spends readingeach portion of content and/or how many portions of the content the userfinishes reading.

The portion of content which the timer measures may vary in differentembodiments and may be configurable by the user. Each portion mayrepresent a measurable unit of the media content and may include, forexample, characters, words, lines, sentences, paragraphs, pages,chapters, sections, books, images, any other measurable unit, or anycombination of these units. Electronic publications may have variablesized fonts, and the user device can re-page material based on theamount of text that can fit on a single page using a selected font size.Additionally, the user device may divide the text of electronicpublications into pages based on contents of the text. For example, if aspecific portion of the text deals with a particular topic, then thatportion of the text may be included in a separate page than otheradjacent text that deals with another topic. This may be the case evenif there is space for text discussing both topics to be displayed on asingle page at a current chosen font size. These or other variations mayaffect the portion of content being measured, and in turn affect thereading behavior measurement.

Electronic media analyzing module 215 may analyze the active electronicmedia publication to identify factors that may affect the portion ofcontent being measured. For example, electronic media analyzing module215 may examine the electronic publication to determine a number ofwords displayed on a screen at one time with the current font size.Electronic media analyzing module 215 may be configured to determinethis directly from the electronic publication and store the informationas electronic media data 240. In another embodiment, electronic mediaanalyzing module 215 may obtain the information from electronic mediadata 240 in data store 242. Electronic media data 240 may be previouslycreated by consumption rate monitoring module 135 or may be created bysome other application or program and may be updated when changes occurto the electronic publication, such as a change in font size asdiscussed above. In other embodiments, electronic media analyzing module215 may determine other information or characteristics of the electronicpublication, such as, a number of chapters or sections in thepublication, the number of pages in the publication, the number ofcharacters or words in a sentence, page, or paragraph, the number ofimages on a page, or the like. The electronic media data may alsoinclude information on a level of difficulty of the contents forportions of the electronic media being read. For example, a newspaper ormagazine article may be given a lower level of difficulty, while atextbook or scientific journal may be given a higher difficulty rating.

Reading behavior analyzing module 220 may analyze data from data store242 to determine a rate of consumption value (e.g., a reading speed).Reading behavior analyzing module 220 may read user reading behaviordata 236 and electronic media data 240 from data store 242. In oneembodiment, user reading behavior data 236 may include a number of pagesor screens viewed by the user and a time that the user spent viewingeach page or screen. Electronic media data 240 may includecharacteristics of the electronic publication, at the time the userreading behavior data 236 was collected, such as a number of wordsdisplayed on each page or screen viewed by the user. Using readingbehavior data 236 and electronic media data 240, reading behavioranalyzing module 220 may determine a rate of consumption value, whichmay be expressed, for example, in words per minute. In otherembodiments, the rate of consumption value may be expressed differently,using different measureable units (e.g., characters, pages, chapters)and/or time values (e.g., seconds, milliseconds, hours). Readingbehavior analyzing module 220 may determine a rate of consumption valuefor each measurable unit of the electronic media for which user readingbehavior data 236 was stored in data store 242. Reading behavioranalyzing module 220 may store the rate of consumption value(s) as rateof consumption data 232 in data store 242.

In one embodiment, reading behavior analyzing module 220 may combine thestored rate of consumption values for each measureable unit to determinean average rate of consumption value. The average may be calculated asthe arithmetic mean of the stored rate of consumption values in rate ofconsumption data 232, however in other embodiments, reading behavioranalyzing module may also calculate the median value, the mode value, orsome other value. The calculated average rate of consumption value mayalso be stored in rate of consumption data 232 of data store 242. Theaverage may be a running average, such that it is continuously updatedeach time a new rate of consumption value is determined for anothermeasurable unit of the electronic publication. In one embodiment, eachrate of consumption value may be compared to a threshold value beforebeing included in the running average. For example, if a rate ofconsumption value deviates from the current average by more than athreshold amount (e.g., faster or slower by more than the thresholdamount), then the reading behavior analyzing module 220 may disregardthat value rather than including it in the running average. A rate ofconsumption value may deviate from the average by more than thethreshold amount, for example, if a user is quickly turning throughpages of the electronic publication or if the user has stopped readingthe electronic publication for a period of time. The threshold value maybe set to a default value or may be user configurable and may be storedin data store 242 as threshold data 234.

In one embodiment, the running average stored in rate of consumptiondata 232 may be calculated for one user and for the current piece ofelectronic media being read. Thus, the average rate of consumption valuewould represent the user's average reading speed for the currentelectronic media. In another embodiment, another running average may bestored that includes rate of consumption values for multiple pieces ofelectronic media. This may include, for example, all of the books thatthe user has read in the past, other pieces of similar electronic media,or some other combination. When different pieces of electronic media areincluded in the average calculation, the rate of consumption values maybe weighted based on the level of difficulty of the electronic media. Inyet another embodiment, reading behavior data may be shared by multipleusers on the same or different user devices. If multiple users share thesame user device, there may be more than one user reading behavior data236 and that data may be used to calculate the average rate ofconsumption value in rate of consumption data 232. Rate of consumptionmonitoring module 135 may also include reading behavior sharing module245 which enables the sharing of reading behavior data over a network,as described above with respect to FIG. 1. Thus, reading behavior datafrom multiple users on different user devices may be combined to form anaverage rate of consumption value for a particular electronicpublication. The shared reading behavior data received by readingbehavior sharing module 245 may be stored as shared reading data 238 indata store 242.

In one embodiment, the user device may include one or more sensors suchas touch sensors, proximity sensors or motion sensors that the userdevice can use to identify whether the user device is being held by auser. If the reading behavior analyzing module 220 determines that auser is taking an uncharacteristically long time reading through aportion of text, it may check data from the sensors to determine whetherthe user device is being held by a user. If the user device is not beingheld by a user and no page turn signal has been sent to the user devicefor a threshold period of time, the reading behavior analyzing module220 may determine that the user is not currently reading the currentportion of text, and stop the timer 248 and/or deduct time from thetimer 248.

In one embodiment, the user device includes an optical sensor thattracks user eye movement. Reading behavior tracking module 210 may thencorrelate the user eye movement to currently displayed portions of text.This information may be used to more accurately identify how a user isprogressing through particular portions of reading, whether a user isnodding off (e.g., if eyes are detected to be closed or droopy), orwhether a user is not looking at the user device (in which case thetimer 248 can be paused). Thus, the optical sensor can be used todetermine when a user has completed reading a portion of the electronicmedia rather than using a page turn signal.

In one embodiment, reading behavior reporting module 225 may report auser's reading behavior (e.g., user reading behavior data 236), and/orrate of consumption data 232 to an item providing system, such asdigital content providing system 120 of FIG. 1. The item providingsystem may then aggregate this information with reading behavior andrate of consumption information from other users. Item providing systemmay also suggest additional pieces of electronic media and/or provideestimated reading times for the additional electronic media.

In one embodiment, consumption rate monitoring module 135 furtherincludes an additional module(s) designed to implement various desiredfeatures based on the rate of consumption. One example is readingbehavior estimate module 230. Reading behavior estimate module 230 maybe configured to provide an estimate of the remaining reading time forthe current electronic publication. Reading behavior estimate module 230may read electronic media data 240, which may contain information aboutthe current electronic publication, and rate of consumption data 232.Reading behavior estimate module 230 may calculate how long it may takethe user to finish reading the electronic publication based on theaverage rate of consumption and the number of measureable units left inthe electronic publication. In other embodiments, consumption ratemonitoring module 135 may include additional modules configured toimplement other functionalities.

In one embodiment, a module may compare the current average rate ofconsumption to a target reading speed provided by the user and determinehow far off the actual reading speed is, what increase in reading speedis needed to reach the target, etc. In order to assist a user inincreasing his or her reading speed, a module may automatically turn thepage of the electronic publication after a specified period of time inorder to force the user to read at a certain rate. This period of timeand/or rate of consumption may be user configurable. In anotherembodiment, text may be highlighted, starting at the beginning of thepage and continuing to the end, corresponding to a target rate ofconsumption, so that a user may see how fast they must read to reachtheir target.

In another embodiment, the determined average rate of consumption may beused to estimate how far a user will read in an electronic publicationin a predetermine amount of time. For example, the user may specify thatthey have one hour (or some other period of time) in which to read anebook. The user may input the time period and, based on the average rateof consumption and the number of measureable units in the electronicpublication, reading behavior estimate module 230 may determine thatthat the user is likely to finish reading a certain portion, or theentirety, of the electronic publication in that time period. The portionmay be specified, for example, as a certain number of chapters,sections, pages, words, characters, etc. The estimate may be displayedto the user on a display of the user device.

FIG. 3 is a block diagram illustrating an exemplary user device 104. Inone embodiment, the user device 104 may correspond to one or all of theuser devices 104, 153, 155 of FIG. 1 and may be any type of user devicesuch as an electronic book reader, a PDA, a mobile phone, a laptopcomputer, a portable media player, a tablet computer, an electronic pad,a desktop computer, a camera, a video camera, a netbook, and the like.

The user device 104 includes one or more processors 330, such as one ormore CPUs, microcontrollers, field programmable gate arrays, or othertypes of processors. The user device 104 also includes system memory306, which may correspond to any combination of volatile and/ornon-volatile storage mechanisms. The system memory 306 storesinformation which provides an operating system component 308, variousprogram modules 310 such as consumption rate monitoring module 135,and/or other components. The user device 104 performs functions by usingthe processor(s) 330 to execute instructions provided by the systemmemory 306.

The user device 104 also includes a data storage device 314 that may becomposed of one or more types of removable storage and/or one or moretypes of non-removable storage. The data storage device 314 includes acomputer-readable storage medium 316 on which is stored one or more setsof instructions embodying any one or more of the methodologies orfunctions described herein. As shown, instructions for the consumptionrate monitoring module 135 may reside, completely or at least partially,within the computer readable storage medium 316, system memory 306and/or within the processor(s) 330 during execution thereof by the userdevice 104, the system memory 306 and the processor(s) 330 alsoconstituting computer-readable media. In one embodiment, data storage314 includes data store 242 of FIG. 2. The user device 104 may alsoinclude one or more input devices 318 (keyboard, mouse device,specialized selection keys, etc.) and one or more output devices 320(displays, printers, audio output mechanisms, etc.).

The user device 104 further includes a wireless modem 322 to allow theuser device 104 to communicate via a wireless network (e.g., such asprovided by the wireless communication system) and/or with othercomputing devices, such as remote computers, the item providing system,online book stores, electronic catalogs for libraries, and so forth. Thewireless modem 322 may allow the user device 104 to handle both voiceand non-voice communications (such as communications for text messages,multimedia messages, media downloads, web browsing, etc.) with thewireless communication system 110. The wireless modem 322 may providenetwork connectivity using any type of mobile network technologyincluding, for example, cellular digital packet data (CDPD), generalpacket radio service (GPRS), enhanced data rates for GSM evolution(EDGE), universal mobile telecommunications system (UMTS), 1 times radiotransmission technology (1xRTT), evaluation data optimized (EVDO),high-speed downlink packet access (HSDPA), WiFi, etc. The wireless modem322 may generate signals and send these signals to power amplifier (amp)380 for amplification, after which they are wirelessly transmitted viaantenna 384. In addition to sending data, antenna 384 also receivesdata, which is sent to wireless modem 322 and transferred toprocessor(s) 330.

In one embodiment, user device 104 includes an optical sensor 366. Theoptical sensor 366 may be a low resolution camera (e.g., having 0.2 or0.3 Megapixels) that takes images (e.g., of a user's eyes) on a periodicbasis. Alternatively, the optical sensor 366 may have a higherresolution, such as 1 Megapixel up to 10 or more Megapixels. The opticalsensor 366 may be positioned such that images are taken of a user's facewhile the user holds the user device 104 in front of his face in astandard reading position. Therefore, the optical sensor 366 may be usedto track user eye movement during reading.

In one embodiment, user device 104 includes one or more additionalsensors 368 such as a physical contact sensor, close proximity sensors,or motion sensors. The sensors 368 can detect the presence of human bodyparts, and convey information regarding the detected presence toprocessor(s) 330. In one embodiment, the sensors 368 may be capacitivesensors that are configured to measure capacitance generated by thepresence of the human body part using any one of various techniquesknown in the art, for example, relaxation oscillation, a current versesvoltage phase shift comparison, resistor-capacitor charge timing,capacitive bridge division, charge transfer, sigma-delta modulation, orcharge-accumulation. In an alternative embodiment, the sensors 368 mayalso be optical (e.g., infrared) sensors that use an emitter andreceiver pair to detect the presence of opaque objects. Alternatively,the sensors 368 may be inductive sensors, which include an inductiveloop. When the presence of a human body part (or metal object) isbrought close to the inductive sensor, an induction of the inductiveloop changes, causing the human body part to be detected. Alternatively,the sensors 368 may be ultrasonic sensors that emit an ultrasonic signaland measure a time duration between when a signal is transmitted and thereflection of that signal received (a.k.a., flight response). Thesensors 368 may also include other types of sensors, such as those thatoperate using the detection principles of resistive (e.g., analogresistive, digital resistive or residual resistive), surface acousticwave, electromagnetic, near field imaging, or other technologies. In oneembodiment, multiple different types of sensors are used. Though thedetected object is described herein as a human body part, other types ofobjects may also be detected depending on the sensing technologies used.

In one embodiment, the additional sensors 368 include a motion sensor,such as an accelerometer or one or more gyroscopes. The user device 104may use motion data from motion sensors to determine whether a user isholding the user device 104. For example, if the user device 104experiences constant minor accelerations, it may be determined that theuser device 104 is being held in a user's hand. Additionally, if theuser device 104 is at a particular angle (detectable based onacceleration readings from an accelerometer), it may be determined thatthe user device 104 is being rested on a user's leg during reading.

The processor(s) 330 may include sensor circuitry 335 (e.g., sensordevice drivers) that enables the processor(s) 330 to interpret signalsreceived from the optical sensor(s) 366 and/or additional sensors 368.In one embodiment, the optical sensors 366 and/or additional sensors 368output raw sensor data. In another embodiment, the optical sensors 366and/or additional sensors 368 output fully processed signals to theprocessor(s) 330. For example, the additional sensors 368 may output auser contact/no user contact signal using a single line interface or amulti-line interface. In another embodiment, the additional sensors 368output, for example, positional data and/or object presence data (e.g.,of a human body part) to the processors 330 without first processing thedata. In either instance, the processors 330 may use the sensorcircuitry 335 to process and/or interpret the received data. If data isreceived from multiple sensors, processing the data may includeaveraging the data, identifying a maximum from the data, or otherwisecombining the data from the multiple sensors.

FIG. 4 is a flow diagram illustrating a rate of consumption monitoringmethod, according to an embodiment of the present invention. The method400 may be performed by processing logic that comprises hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software (e.g., instructions run on a processing device to performhardware simulation), or a combination thereof. The processing logic isconfigured to monitor the rate of consumption of an electronicpublication by a user. In one embodiment, method 400 may be performed byrate of consumption monitoring module 135, as shown in FIG. 2.

Referring to FIG. 4, at block 410, method 400 determines a rate ofconsumption value for one or more measurable units of an electronicpublication. As discussed above with respect to FIG. 2, reading behavioranalyzing module 220 may use user reading behavior data 236 andelectronic media data 240 from data store 242 to determine a rate ofconsumption value for a measureable unit of a current electronicpublication. The rate of consumption value(s) may be stored as rate ofconsumption data 232 in data store 242. At block 420, method 400receives an indication of a threshold value. The threshold value mayrepresent an acceptable deviation from the current average (or previous)rate of consumption value. The threshold value may be stored asthreshold data 234 in data store 242 and may be received by consumptionrate monitoring module 135 as user input, as a selection from a list ofchoices, as a preprogrammed default value, etc.

At block 430, method 400 calculates a running average for the rate ofconsumption values. Reading behavior analyzing module 220 may compareeach rate of consumption value to the threshold value before beingincluded in the running average. For example, if a rate of consumptionvalue deviates from the current average by more than a threshold amount(e.g., faster or slower by more than the threshold amount), then thereading behavior analyzing module 220 may disregard that value ratherthan including it in the running average. At block 440 method 400implements a desired feature based on the running average calculated atblock 430. One example of the feature may be an estimate of the time itwill take the user to finish reading the current piece of electronicmedia. Reading behavior estimate module 230 may use electronic mediadata 240 and rate of consumption data 232 to calculate an expectedremaining time based on the average rate of consumption and the numberof measureable units remaining in the electronic publication.

FIG. 5 is a flow diagram illustrating a rate of consumption monitoringmethod, according to an embodiment of the present invention. The method500 may monitor the rate of consumption of an electronic publication bya user. The method 500 may provide additional details with reference tothe method 400 of FIG. 4. In one embodiment, method 500 may be performedby rate of consumption monitoring module 135, as shown in FIG. 2.

Referring to FIG. 5, at block 510, method 500 tracks a user's readingbehavior of a portion of text (e.g., a measurable unit) for theelectronic publication. Reading behavior tracking module 210 maydetermine, using timer 248, how much time the user spends reading themeasurable unit of the electronic publication. The timer 248 may beactivated in response to user input, for example, by a turn pagecommand, when the timer 248 would record the amount of time that a userspent on a particular page of the electronic publication, by an opticalsensor, when the timer 248 would record the amount of time that the userspent actually looking at the screen of the user device, or by someother input. This time value may be stored as user reading behavior data236 in data store 242.

At block 520, method 500 determines characteristics of the measureableunit of the electronic publication for which the user's reading behaviorwas tracked at block 510. Electronic media analyzing module 215identifies factors that may affect the portion of content beingmeasured. For example, electronic media analyzing module 215 may examinethe electronic publication to determine a number of words displayed on ascreen at one time. Electronic media analyzing module 215 may beconfigured to determine this directly from the electronic publicationand store the information as electronic media data 240. In anotherembodiment, electronic media analyzing module 215 may obtain theinformation from electronic media data 240 in data store 242. Electronicmedia data 240 may be previously created by consumption rate monitoringmodule 135 or may be created by some other application or program. Inother embodiments, electronic media analyzing module 215 may determineother information or characteristics of the electronic publication.

At block 530, method 500 determines a rate of consumption value for themeasureable unit. Reading behavior analyzing module 220 may analyze userreading behavior data 236 and electronic media data 240 from data store242 to determine a rate of consumption value (e.g., a reading speed).Using reading behavior data 236 and electronic media data 240, readingbehavior analyzing module 220 may determine a rate of consumption value,which may be expressed, for example, in words per minute. In otherembodiments, the rate of consumption value may be expressed differently.Reading behavior analyzing module 220 may determine a rate ofconsumption value for each measurable unit of the electronic media whichwas tracked at block 510. Reading behavior analyzing module 220 maystore the rate of consumption value(s) as rate of consumption data 232in data store 242.

At block 540 method 500 determines if the number of rate of consumptionvalues determined at stored at block 530 has reached a determined number(i.e., if there are a sufficient number of values). The determinednumber may have a default value (e.g., 20, 30, 40), set by themanufacturer of the user device, or may be user configurable, such thatthe user may set the determined value. The determined number may bedynamic, such that is may be adjusted depending on the particular pieceor type of electronic publication, on the user, etc. If method 500determines that there are not a sufficient number of values, method 500returns to block 510 and repeats the operations at blocks 510-530 untilthe determined number of rate of consumption values is reached orexceeded. If, at block 540, method 500 determines that there are asufficient number of values stored in rate of consumption data 232,method 500 proceeds to block 550. In one embodiment, the determinednumber may be equal to one, such that the average rate of consumption iscalculated or updated for every new rate of consumption value. Inanother embodiment, the comparison at block 540 is optional and may beomitted from method 500.

At block 550, method 500 determines an average rate of consumptionvalue. Reading behavior analyzing module 220 uses all or a portion ofthe rate of consumption values to calculate an average. The average maybe calculated as the arithmetic mean of the stored rate of consumptionvalues in rate of consumption data 232, however in other embodiments,reading behavior analyzing module 220 may also calculate the medianvalue, the mode value, or some other value. The calculated average rateof consumption value may also be stored in rate of consumption data 232of data store 242.

At block 560, method 500 determines a threshold value. The thresholdvalue may represent an acceptable deviation from the average rate ofconsumption value calculated at block 550. The threshold value may bestored as threshold data 234 in data store 242 and may be received byconsumption rate monitoring module 135 as user input, as a selectionfrom a list of choices, as a preprogrammed default value, etc. In oneembodiment the threshold value may be set as a percentage of the averagerate of consumption value (e.g., 10%, 20%) or a fixed value (e.g., 10seconds, 30 seconds). Reading behavior analyzing module 220 may compareeach subsequent rate of consumption value to the threshold and disregardvalues that fall outside of the threshold, either above or below thecalculated average or a target rate of consumption.

At block 570, method 500 calculates a running average of the rate ofconsumption values that fall within the threshold established at block560. Reading behavior analyzing module 220 may compare each rate ofconsumption value to the threshold value before being included in therunning average. For example, if a rate of consumption value deviatesfrom the current average by more than a threshold amount (e.g., fasteror slower by more than the threshold amount), then the reading behavioranalyzing module 220 may disregard that value rather than including itin the running average. In one embodiment, the running average stored inrate of consumption data 232 may be calculated for the one user and thecurrent piece of electronic media being read. In another embodiment,another running average may be stored that includes rate of consumptionvalues for multiple pieces of electronic media and/or multiple users.

FIG. 6 is a flow diagram illustrating a remaining reading timedetermination method, according to an embodiment of the presentinvention. The method 600 may determine an estimated amount of time thatit will take a user to finish reading at least a portion of anelectronic publication or the entire publication. In one embodiment,method 600 may be performed by rate of consumption monitoring module135, as shown in FIG. 2.

Referring to FIG. 6, at block 610, method 600 receives a running averageof rate of consumption values for an electronic publication. The runningaverage may be determined according to method 500 described above withrespect to FIG. 5 and may be stored as rate of consumption data 232 indata store 242. Reading behavior estimate module 230 may request orautomatically receive the running average from rate of consumption data232.

At block 620, method 600 determines a number of measureable unitsremaining in at least the portion of the electronic publication or theentire publication. Reading behavior estimate module 230 may readelectronic media data 240 to determine how many measureable units remainin the portion or the entire publication. The portion of the electronicpublication may include, for example, the current page, chapter, numberof pages/chapters/sections, the end of the electronic publication, orsome other portion. The measurable units used in the estimate may be thesame as the measureable units for which the rate of consumption valueswere calculated. If the user is partially through with the electronicpublication, the number of measurable units remaining may be equal tothe number of measurable units between the current location and the endof the publication. If the user has not begun reading the electronicpublication, the number of measurable units remaining may equal thetotal number of measurable units in the publication.

At block 630, method 600 calculates a remaining reading time for theelectronic publication. Reading behavior estimate module 230 maymultiply the average rate of consumption value determined at block 610by the number of measurable units remaining determined at block 620 tocalculate the remaining reading time. At block 640, method 600 displaysthe remaining reading time, or other calculated value, in a userinterface, on a display of the user device, as described below withrespect to FIG. 7.

FIG. 7 illustrates a front side of a user device 104 having a display715. The user device 104 may be representative of any of the userdevices 104, 153, 155 shown in FIG. 1. In on embodiment, user device 104may include an antenna 710 disposed within a housing of the user deviceand above or below the display 715. Display 715 may display content tothe user, such as an electronic publication. In one embodiment, a userinterface, displayed on display 715 may include a text display area 717and an indication 720 of a feature implemented by consumption ratemonitoring module 135. In this embodiment, the user interface includesan indication 720 of the remaining reading time for the currentelectronic publication. The remaining reading time may be determinedaccording to method 600, as discussed above. The user interface may bemodified, automatically or in response to user input, to show differentvalues (e.g., time remaining in the book, time remaining in the currentchapter, current reading speed, etc.) This is merely one example of thefeatures that may be implemented using the calculated rate ofconsumption vales, and one of skill in the art would recognize thatthere are many other possible applications or features for such data.

Embodiments of the present invention include various operationsdescribed herein. These operations may be performed by hardwarecomponents, software, firmware, or a combination thereof. Certainembodiments may be implemented as a computer program product that mayinclude instructions stored on a computer-readable medium. Theseinstructions may be used to program a general-purpose or special-purposeprocessor to perform the described operations. A computer-readablemedium includes any mechanism for storing or transmitting information ina form (e.g., software, processing application) readable by a computer.The computer-readable medium may include, but is not limited to,magnetic storage medium (e.g., floppy diskette); optical storage medium(e.g., CD-ROM); magneto-optical storage medium; read-only memory (ROM);random-access memory (RAM); erasable programmable memory (e.g., EPROMand EEPROM); flash memory; or another type of medium suitable forstoring electronic instructions.

Additionally, some embodiments may be practiced in distributed computingenvironments where the computer-readable medium is stored on and/orexecuted by more than one computer system. In addition, the informationtransferred between computer systems may either be pulled or pushedacross the communication medium connecting the computer systems.

The digital processing devices described herein may include one or moregeneral-purpose processing devices such as a microprocessor or centralprocessing unit, a controller, or the like. Alternatively, the digitalprocessing device may include one or more special-purpose processingdevices such as a digital signal processor (DSP), an applicationspecific integrated circuit (ASIC), a field programmable gate array(FPGA), or the like. In an alternative embodiment, for example, thedigital processing device may be a network processor having multipleprocessors including a core unit and multiple microengines.Additionally, the digital processing device may include any combinationof general-purpose processing devices and special-purpose processingdevices.

Although the operations of the methods herein are shown and described ina particular order, the order of the operations of each method may bealtered so that certain operations may be performed in an inverse orderor so that certain operation may be performed, at least in part,concurrently with other operations. In another embodiment, instructionsor sub-operations of distinct operations may be in an intermittentand/or alternating manner.

What is claimed is:
 1. A non-transitory computer-readable storage mediumstoring instructions which, when executed, cause a processing device toperform operations comprising: determining a rate of consumption valuefor each of a plurality of measurable units of an electronic publicationbeing viewed on a user device, wherein determining the rate ofconsumption value for a measurable unit comprises at least one ofstarting a timer when the measurable unit is initially displayed on theuser device and stopping the timer when a change page command isreceived, or starting the timer when a sensor determines that the userbegins viewing the measurable unit on the user device and stopping thetimer when the sensor determines that the user finishes viewing themeasurable unit; calculating, by the processing device, a runningaverage of the rate of consumption values, wherein the running averageis updated based at least in part on a first rate of consumption valuefor a first measurable unit of the plurality of measurable units, andwherein a second rate of consumption value for a second measurable unitof the plurality of measurable units is excluded from the runningaverage when the second rate of consumption value exceeds a thresholdvalue; and providing a feature based on the running average.
 2. Thenon-transitory computer-readable storage medium of claim 1, whereindetermining a rate of consumption value for each of the plurality ofmeasurable units comprises: tracking an amount of time each of theplurality of measurable units is displayed on a display of the userdevice; determining a number of measurable units displayed on thedisplay; and calculating the rate of consumption value based on thenumber of measurable units and the amount of time.
 3. The non-transitorycomputer-readable storage medium of claim 2, wherein the running averageis calculated based on a determined number of reading speeds.
 4. Thenon-transitory computer-readable storage medium of claim 1, whereinproviding the feature comprises estimating an amount of time remainingfor the user to complete consumption of at least a portion of theelectronic publication.
 5. The non-transitory computer-readable storagemedium of claim 4, wherein estimating the amount of time remainingcomprises: determining a number of measurable units remaining in atleast the portion of the electronic publication; and multiplying thenumber of measurable units remaining by the running average of the rateof consumption values.
 6. The non-transitory computer-readable storagemedium of claim 1, wherein calculating the running average comprises:determining a new rate of consumption value for a subsequent measurableunit of the electronic publication; and updating the running averageeach time the new rate of consumption value is determined.
 7. Thenon-transitory computer-readable storage medium of claim 1, whereinproviding the feature comprises estimating a portion of the electronicpublication which the user will consume in a pre-determined period oftime.
 8. The non-transitory computer-readable storage medium of claim 1,wherein providing the feature comprises automatically turning a page ofthe electronic publication after a period of time corresponding to atarget rate of consumption value.
 9. The non-transitorycomputer-readable storage medium of claim 1, wherein the running averageis calculated using rate of consumption values from a plurality ofelectronic publications, and wherein the running average is weightedbased on a level of difficulty of each of the plurality of electronicpublications.
 10. A system, comprising: a processing device; a displaydevice coupled to the processing device; and a memory coupled to theprocessing device, the memory storing a consumption rate monitoringmodule, executed from the processing device and the memory, theconsumption rate monitoring module configured to: determine a rate ofconsumption value for each of a plurality of measurable units of anelectronic publication being viewed on a user device, wherein todetermine the rate of consumption value for a measurable unit, theconsumption rate monitoring module is configure to at least one of starta timer when the measurable unit is initially displayed on the userdevice and stop the timer when a change page command is received, orstart the timer when a sensor determines that the user begins viewingthe measurable unit on the user device and stop the timer when thesensor determines that the user finishes viewing the measurable unit;calculate a running average of the rate of consumption values, whereinthe running average is updated based at least in part on a first rate ofconsumption value for a first measurable unit of the plurality ofmeasurable units, and wherein a second rate of consumption value for asecond measurable unit of the plurality of measurable units is excludedfrom the running average when the second rate of consumption valueexceeds a threshold value; provide a feature based on the runningaverage; and display an indication of the feature on the display device.11. The system of claim 10, wherein to calculate the running average,the consumption rate monitoring module is configured to: determine a newrate of consumption value for a subsequent measurable unit of theelectronic publication; and update the running average each time the newrate of consumption value is determined.
 12. The system of claim 11,wherein the running average is calculated based on a determined numberof rate of consumption values.
 13. The system of claim 10, wherein thefeature comprises an estimate of an amount of time remaining for theuser to complete consumption of at least a portion of the electronicpublication.
 14. The method of claim 13, wherein to estimate the amountof time remaining, the consumption rate monitoring module is configuredto: determine a number of measurable units remaining in at least theportion of the electronic publication; and multiply the number ofmeasurable units remaining by the running average of the rate ofconsumption values.
 15. The system of claim 10, wherein to determine therate of consumption value for each of the plurality of measurable units,the consumption rate monitoring module is configured to: track an amountof time each of the plurality of measurable units is displayed on thedisplay device; determine a number of measurable units displayed on thedisplay device; and calculate the rate of consumption value based on thenumber of measurable units and the amount of time.
 16. The system ofclaim 10, wherein the running average is calculated using rate ofconsumption values from a plurality of electronic publications, andwherein the running average is weighted based on a level of difficultyof each of the plurality of electronic publications.
 17. A method,implemented by a user device, comprising: determining a reading speed ofa user for each of a plurality of pages of an electronic publicationbeing viewed on the user device, wherein determining the reading speedfor a page comprises at least one of starting a timer when the page isinitially displayed on the user device and stopping the timer when achange page command is received, or starting the timer when a sensordetermines that the user begins viewing the page on the user device andstopping the timer when the sensor determines that the user finishesviewing the page; calculating, by a processing device, a running averageof the reading speeds, wherein the running average is updated based atleast in part on a first reading speed for a first page of the pluralityof pages, and wherein a second reading speed for a second page of theplurality of pages is excluded from the running average when the secondreading speed exceeds a threshold value; and estimating, based on therunning average, an amount of time remaining for the user to finishreading at least a portion of the electronic publication.
 18. The methodof claim 17, wherein calculating the running average comprises:determining a new reading speed for a subsequent page of the electronicpublication; and updating the running average each time the new readingspeed is determined.
 19. The method of claim 18, wherein the runningaverage is calculated based on a determined number of reading speeds.20. The method of claim 17, wherein determining the reading speed foreach of the plurality of pages comprises: tracking an amount of timeeach of the pages is displayed on a display of the user device;determining a number of words displayed on the display for each of thepages; and calculating the reading speed based on the number of wordsper page and the amount of time.
 21. The method of claim 17, whereinestimating the amount of time remaining comprises: determining a numberof pages remaining in at least the portion of the electronicpublication; and multiplying the number of pages remaining by therunning average of the reading speeds.
 22. The method of claim 17,wherein the running average is calculated using reading speeds from aplurality of electronic publications, and wherein the running average isweighted based on a level of difficulty of each of the plurality ofelectronic publications.